自关联: 外键字段所关联的字段是自身表里的某个字段
在创建自关联的字段的时候,可以通过 self 代替自身的表的类名
class Comment(models.Model):
"""
评论表
"""
nid = models.AutoField(primary_key=True)
article = models.ForeignKey(to='Article', to_field='nid', verbose_name='评论文章')
user = models.ForeignKey(to='UserInfo', to_field='nid', verbose_name='评论者')
content = models.CharField(max_length=255, verbose_name='评论内容')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
parent_comment = models.ForeignKey(to='self', null=True, verbose_name='自关联id', blank=True)
# 等价于
# parent_comment = models.ForeignKey(to='Comment', null=True, blank=True)
在使用自关联外键字段查询数据之前(即: 正向查询,反向查询),要注意该数据对象是"多"的一方,还是"一"的一方,在博客项目中文章详情评论功能中有提及到